home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Die Speccy' 97
/
Die Speccy' 97.iso
/
amicdfilesystem
/
src
/
iso9660.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-10-03
|
3KB
|
99 lines
/* iso9660.h: */
#ifndef _ISO9660_H_
#define _ISO9660_H_
#include "generic.h"
typedef struct directory_record {
unsigned char length;
unsigned char ext_attr_length;
unsigned long extent_loc_i;
unsigned long extent_loc_m;
unsigned long data_length_i;
unsigned long data_length_m;
unsigned char year;
unsigned char month;
unsigned char day;
unsigned char hour;
unsigned char minute;
unsigned char second;
char tz;
unsigned char flags;
unsigned char file_unit_size;
unsigned char gap_size;
unsigned short sequence_i;
unsigned short sequence_m;
unsigned char file_id_length;
char file_id[1];
} directory_record;
typedef char time_and_date[17];
typedef struct prim_vol_desc {
unsigned char type;
char id[5];
unsigned char version;
char pad1;
char system_id[32];
char volume_id[32];
char pad2[8];
unsigned long space_size_i;
unsigned long space_size_m;
char pad3[32];
unsigned short set_size_i;
unsigned short set_size_m;
unsigned short sequence_i;
unsigned short sequence_m;
unsigned short block_size_i;
unsigned short block_size_m;
unsigned long path_size_i;
unsigned long path_size_m;
unsigned long l_table;
unsigned long opt_l_table;
unsigned long m_table;
unsigned long opt_m_table;
directory_record root;
char volume_set_id[128];
char publisher_id[128];
char data_preparer[128];
char application_id[128];
char copyright[37];
char abstract_file_id[37];
char bibliographic_id[37];
time_and_date vol_creation;
time_and_date vol_modification;
time_and_date vol_expiration;
time_and_date vol_effective;
unsigned char file_structure_version;
char pad4;
char application_use[512];
char reserved[653];
} prim_vol_desc;
/* for internal use only: */
typedef struct iso_vol_info {
prim_vol_desc pvd;
int skip;
unsigned short blockshift;
t_bool lowercase;
} t_iso_vol_info;
typedef struct iso_obj_info {
directory_record *dir;
unsigned long parent_loc; /* for files only */
} t_iso_obj_info;
t_bool Iso_Init_Vol_Info (VOLUME *p_volume, int p_skip, t_ulong p_offset,
t_bool lowercase);
t_bool Uses_Iso_Protocol (CDROM *p_cdrom, t_ulong *p_offset);
t_bool Uses_High_Sierra_Protocol (CDROM *p_cdrom);
directory_record *Get_Directory_Record (VOLUME *p_volume,
struct directory_record *p_dir,
unsigned long p_location,
unsigned long p_offset);
CDROM_OBJ *Iso_Create_Directory_Obj (VOLUME *p_volume, unsigned long p_location);
#endif /* _ISO9660_H_ */